#include <iostream>
#include <vector>
using namespace std;

int main() {
    long long a;
    cin >> a;
    vector<char> s;
    int sum=0;
    while(a)
    {
        int p=a%10;
        s.push_back('0'+p);
        sum++;
        if(sum==3)
        {
            s.push_back(',');
            sum=0;
        }
        a=a/10;
    }
    if(s.back()==',')
    {
        s.pop_back();
    }
    for(int i=s.size()-1;i>=0;i--)
    {
        cout << s[i];
    }
    return 0;
}
// 64 位输出请用 printf("%lld")



#include <iostream>
using namespace std;
int func(int n)
{
    if(n==0||n==1)
    {
        return 1;
    }
    else{
        return func(n-1)+func(n-2);
    }
}
int main() {
    int n;
    cin >> n;
    cout << func(n) << endl;
    return 0;
}
// 64 位输出请用 printf("%lld")



class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     * 
     * @param numbers int整型vector 
     * @return bool布尔型
     */
    bool IsContinuous(vector<int>& numbers) {
        // write code here
        sort(numbers.begin(),numbers.end());
        int sum=0;
        bool vis=true;
        for(int i=0;i<numbers.size();i++)
        {
            if(numbers[i]==0)
            {
                sum++;
                continue;
            }
            else{
                if((i+1)!=numbers.size())
                {
                    if(numbers[i+1]==(numbers[i]+1))
                    {
                        continue;
                    }
                    else if(numbers[i+1]==numbers[i])
                    {
                        vis=false;
                        break;
                    }
                    else{
                        int o=numbers[i+1]-numbers[i]-1;
                        if(sum<o)
                        {
                            vis=false;
                            break;
                        }
                        else{
                            sum-=o;
                        }
                    }
                }
            }
        }
        return vis;
    }
};
